// 导入FeedViewType枚举，用于定义不同的内容视图类型（如全部、文章等）
import { FeedViewType } from "@follow/constants"
// 导入react-router的redirect函数，用于执行路由重定向
import { redirect } from "react-router"

// 导入路由常量：
// ROUTE_ENTRY_PENDING - 表示待处理的条目状态路径段
// ROUTE_FEED_PENDING - 表示待处理的源状态路径段
import { ROUTE_ENTRY_PENDING, ROUTE_FEED_PENDING } from "~/constants"
// 导入特性检查钩子，用于检查AI功能是否启用
import { getFeature } from "~/hooks/biz/useFeature"

/**
 * 根路径页面组件
 *
 * 注意：这个组件实际上永远不会被渲染，因为loader函数总是返回重定向
 * 它的存在只是为了满足React Router的路由定义要求
 */
export function Component() {
  // 返回null，因为这个组件永远不会被看到
  return null
}

/**
 * 根路径的loader函数
 *
 * 这是根路径重定向逻辑的核心，负责确定用户应该被重定向到哪个timeline视图
 * 根据AI功能是否启用，选择不同的默认视图类型
 *
 * @returns 重定向响应，将用户导航到适当的timeline路由
 */
export const loader = () => {
  // 检查AI功能是否启用
  const aiEnabled = getFeature("ai")

  // 根据AI功能状态选择默认视图类型
  // - 如果AI启用，使用FeedViewType.All（显示所有内容）
  // - 如果AI未启用，使用FeedViewType.Articles（仅显示文章）
  const view = aiEnabled ? FeedViewType.All : FeedViewType.Articles

  // 构建重定向URL
  // 格式: /timeline/view-{视图ID}/all/pending
  // - view-{view}: 指定使用的视图类型
  // - {ROUTE_FEED_PENDING} ("all"): 显示所有源
  // - {ROUTE_ENTRY_PENDING} ("pending"): 显示所有条目
  const redirectUrl = `/timeline/view-${view}/${ROUTE_FEED_PENDING}/${ROUTE_ENTRY_PENDING}`

  // 执行重定向
  return redirect(redirectUrl)
}
